from datetime import datetime
import generator
import alg

def test(funcName,Name):
    #数据生成  
    base, groundtruth = generator.make_data(100)  # 括号内输入需要生成的数据范围
    print("原始数据:", base)

    # 代码调用
    if Name == "归并" or Name == "快速":      
        begin_time = datetime.now()
        base = funcName(base)  # 排序算法调用
        end_time = datetime.now()
        run_time = end_time - begin_time  # 由于时间精度，算法运行时间可能为零
        if base == groundtruth:
            print("-------------------------------")
            print("{}排序正确".format(Name))
            print("算法运行时间:", run_time)  # 由于时间精度，算法运行时间可能为零
            print("-------------------------------")
            return
        else:
            print("-------------------------------")
            print("排序错误")
            print("-------------------------------")
            return

    begin_time = datetime.now()
    funcName(base)  # 排序算法调用
    end_time = datetime.now()
    run_time = end_time - begin_time  # 由于时间精度，算法运行时间可能为零

    # 结果输出
    if base == groundtruth:
        print("-------------------------------")
        print("{}排序正确".format(Name))
        print("算法运行时间:", run_time)  # 由于时间精度，算法运行时间可能为零
        print("-------------------------------")
    else:
        print("-------------------------------")
        print("排序错误")
        print("-------------------------------")


test(alg.InsertSort,"插入")
test(alg.bubbleSort,"冒泡")
test(alg.merge_sort,"归并")
test(alg.heapSort,"堆")
test(alg.quick_sort,"快速")